home *** CD-ROM | disk | FTP | other *** search
- /* checkbox gadget subclass */
-
- #include <proto/bgui.h>
- #include <proto/intuition.h>
- #include <libraries/bgui_macros.h>
- #include "checkbox.h"
-
- Class *CheckClass;
-
- ULONG CheckGadg_DIMENSIONS(Class *cl,Object *o,struct grmDimensions *dim)
- {
- ULONG retval,flags;
-
- if (dim->grmd_RPort->TxHeight <= 8)
- {
- flags = dim->grmd_Flags;
- dim->grmd_Flags |= GDIMF_NO_FRAME;
- retval = CoerceMethodA(BGUI_GetClassPtr(BGUI_BASE_GADGET),o,dim);
- *(dim->grmd_MinSize.Width) += CHECKMARK_WIDTH;
- *(dim->grmd_MinSize.Height) += CHECKMARK_HEIGHT;
- dim->grmd_Flags = flags;
- }
- else
- {
- retval = DoSuperMethodA(cl,o,(Msg)dim);
- }
- return retval;
- }
-
- __geta4 ULONG DispatchCheckGadg(__a0 Class *cl,__a2 Object *o,__a1 Msg msg)
- {
- ULONG retval;
-
- switch (msg->MethodID)
- {
- case GRM_DIMENSIONS:
- retval = CheckGadg_DIMENSIONS(cl,o,(struct grmDimensions *)msg);
- break;
- default:
- retval = DoSuperMethodA(cl,o,(Msg)msg);
- break;
- }
- return retval;
- }
-
- Class *InitCheckClass(void)
- {
- Class *super;
-
- if (CheckClass == NULL)
- {
- if (super = BGUI_GetClassPtr(BGUI_CHECKBOX_GADGET))
- {
- CheckClass = MakeClass(NULL,NULL,super,0,0);
- if (CheckClass)
- CheckClass->cl_Dispatcher.h_Entry = (HOOKFUNC)DispatchCheckGadg;
- }
- }
- return CheckClass;
- }
-
- void FreeCheckClass(void)
- {
- if (CheckClass) FreeClass(CheckClass);
- CheckClass = NULL;
- }
-